package com.yixq.soa.service.web.auth;

import com.yixq.soa.service.comm.constant.DoorDuRedisKeyConstant;
import com.yixq.soa.service.web.auth.model.TokenModel;

/**
 * 对token进行操作的接口
 * 
 * @ClassName: TokenManager
 * @Description:
 * @author xiaoqun.yi yixq@doordu.com
 * @date 2017年4月6日 上午10:32:47
 * @version V1.0
 */
public interface TokenManager {
	/**
	 * 创建一个token关联上指定用户
	 * 
	 * @param appId
	 *            appid应用id
	 * @return 生成的token
	 */
	public TokenModel createToken(String appId);

	public boolean createToken(String appId, String passwd);

	/**
	 * 检查token是否有效
	 * 
	 * @param model
	 *            token
	 * @return 是否有效
	 */
	public boolean checkToken(TokenModel model);

	/**
	 * 从字符串中解析token
	 * 
	 * @param authentication
	 *            加密后的字符串
	 * @return
	 */
	public TokenModel getToken(String authentication);

	/**
	 * 清除token
	 * 
	 * @param appId
	 *            登录用户的id
	 */
	public void deleteToken(String appId);

	public static final String tokenKeyPrefix = DoorDuRedisKeyConstant.OP_SYS_KEY + DoorDuRedisKeyConstant.LOGIN_TOKEN;

}
